<?php
//自定义caculate方法，计算日历的天数与样式
//1.讲上个月的天数计算出来，本月第一天不是周天的话，就需要根据上个月的最后一天计算
//2.将本月的天数遍历出来，如果是休息天就加上特殊的CSS样式
//3.将下课月的天数计算出来，分三种情况，周六，周天，工作日

function caculate($calendar){    //$calendar通过threshold方法计算后的数据
	$days = $calendar['days'];
	$firstDayOfWeek = $calendar['firstDayOfWeek'];  //本月第一天的星期
	$lastDayOfWeek = $calendar['lastDayOfWeek'];   //本月最后一天的星期
	$lastMonthOfLastDay = $calendar['lastMonthOfLastDay'];   //上个月的最后一天
	$year = $calendar['year'];
	$month = $calendar['month'];
	$dates = array();

	if($firstDayOfWeek!=7){
		$lastDays =array();
		$current = $lastMonthOfLastDay;  //上个月最后一天
		for($i=0;$i<$firstDayOfWeek;$i++){
			array_push($lastDays,$current);  //添加上一个月的日期天数
			current--;
		}
		$lastDays =array_reverse($lastDays);  //反序
		foreach ($lastDays as $index => $day) {
			array_push($dates,array('day'=>$day,'tdclass'=>($index==0?'rest':''),'pclass'=>'outter'));
		}
	}

	//本月日历信息
	for($i=1;$i<=$days;$i++){
		$isRest = $this->checklsRest($year,$month,$i);
		array_push($dates,array('day'=>$i,'tdclass'=>($isRest?'rest':''),'pclass'=>''));     //array_push()  向第一个参数的数组尾部添加一个或多个元素，然后返回数组的长度
	}

	//下一个月的日历信息
	if($lastDayOfWeek==7){    //如果最后一天是周天
		$length=6;
	}elseif ($lastDayOfWeek==6) {   //如果最后一天是周六
		$length=0;
	}else{
		$length=6-$lastDayOfWeek;
	}
	for($i=1;$i<=$length;$i++){
		array_push($dates,arrry('day'=>$i,'tdclass'=>($i==$length?'rest':''),'pclass'=>'outter'));
	}
	return $dates;
}
?>